package cn.sc.summer.calculate.vo;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 类名：网关日志信息返回VO
 *
 * @author a-xin
 * @date 2023/10/17 15:14
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "网关日志信息返回VO")
public class GatewayLogVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private String id;

    /**
     * 接口所在服务名称。
     * 通常为spring.application.name配置项的值。
     */
    @ApiModelProperty(value = "接口所在服务名称")
    private String apiServiceName;

    /**
     * 操作用户的IP地址
     */
    @ApiModelProperty(value = "操作用户的IP地址")
    private String reqIp;

    /**
     * 网关路由
     */
    @ApiModelProperty(value = "网关路由")
    private String route;

    /**
     * 操作的URI
     */
    @ApiModelProperty(value = "操作的URI")
    private String reqUri;

    /**
     * 请求体头部信息
     */
    @ApiModelProperty(value = "请求体头部信息")
    private String reqHeaders;

    /**
     * 操作的方式
     */
    @ApiModelProperty(value = "操作的方式")
    private String reqMethod;

    /**
     * 操作的方式
     */
    @ApiModelProperty(value = "操作的方式")
    private String reqType;

    /**
     * 操作提交的数据
     */
    @ApiModelProperty(value = "操作提交的数据")
    private String reqParams;

    /**
     * 返回的数据
     */
    @ApiModelProperty(value = "返回的数据")
    private String respData;

    /**
     * 返回数据状态码
     */
    @ApiModelProperty(value = "返回数据状态码")
    private Integer respStatus;

    /**
     * 耗时
     */
    @ApiModelProperty(value = "耗时")
    private Long time;

    /**
     * 创建者ID
     */
    @ApiModelProperty(value = "创建者ID")
    private String createUser;

    /**
     * 创建数据时间
     */
    @ApiModelProperty(value = "创建数据时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 租户ID
     */
    @ApiModelProperty(value = "租户ID")
    private String dataTenantId;

}
